Targeting in a stylus-based user interface

ABSTRACT

Aspects of the invention provide virtual hover zones. When a user lowers a hovering stylus while remaining within a hover zone, cursor control is modified to be more easily controllable by the user. If the user pauses the stylus in mid-air before lowering the stylus, and if the stylus remains within the hover zone, then upon touchdown the cursor may be moved to the projection of the location where the stylus was paused. Any action that may be taken in response to the touch down may be sent to the projection location as well. Also provided are cursor control zones. A dampening zone may be used to provide dampened cursor movement feedback in response to movement input provided by a pointing device. Also, a dead zone may be used to prohibit cursor movement in response to movement input provided by the pointing device.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. Ser. No.12/772,644 (filed May 3, 2010, and issuing as U.S. Pat. No. 8,502,804),which is a continuation application of U.S. application Ser. No.11/085,192 (filed on Mar. 22, 2005, and issued as U.S. Pat. No.7,728,825). Each of the aforementioned patents and patent applicationsis incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

Aspects of the present invention are directed to improvements intargeting displayed objects in a stylus-based user interface of acomputing device.

BACKGROUND OF THE INVENTION

Touch-sensitive surfaces are rapidly becoming more common in computingdevices. They are very convenient as they allow a user to make naturalgestures familiar to the user in other contexts, such as by enteringhandwriting using a special stylus such as an elongated pen-like objecthaving a pointed tip. The term touch-sensitive surface or device will beused herein to refer to such surfaces or devices, such as digitizersthat may be separate from or integral with a display, that areconfigured to detect the touch of a stylus. The term “stylus” as usedthroughout herein includes any type of stylus such as aspecially-designed stylus device (e.g., a pen) or even a user's finger.Various touch-sensitive surfaces provide for a hover function, meaningthat the touch-sensitive surface is capable of detecting the presence ofthe stylus without the stylus actually touching the touch-sensitivesurface. For example, some touch-sensitive devices can detect thepresence of a stylus within approximately 2 centimeters of theirtouch-sensitive surfaces. This is referred to as hovering with thestylus. This capability may allow the user to position the cursor overan area prior to taking an action such as generating a left mouse buttondown command, also known as a left click. Hovering with a stylus issimilar to moving the cursor using a mouse, and pressing down with thestylus (e.g., by tapping the stylus on the surface of thetouch-sensitive device) is similar to pressing the left or right buttonsof the mouse.

However, precise targeting using a stylus and touch-sensitive surfacecan sometimes be difficult, especially where accuracy is important. Forexample, if a user desires to tap a stylus on, a particular point of atouch-sensitive display device, the user may receive feedback in theform of a displayed cursor that follows the movements of the styluswhile it is hovering and prior to the tap. This allows the user to seewhere the intended tap location will be. However, as the stylusapproaches the touch-sensitive device and eventually comes into contactwith it, the actual tap location may differ from the intended location.Small targets, parallax, poor digitizer quality, and shaky hands cancontribute to such targeting difficulties.

Accordingly, there is a need for ways to overcome, counteract, orminimize such targeting difficulties.

SUMMARY OF THE INVENTION

Aspects of the present invention are directed to providing ways forusers to more accurately control a graphical user interface using apointing device such as a stylus and touch-sensitive device.

Aspects of the invention provide virtual hover zones, wherein when auser lowers a hovering stylus—while remaining within a hover zone,cursor control is modified to be more easily controllable. The hoverzone may be conceptualized as a three-dimensional volume, such as a coneor cylinder, extending between the tip of the stylus and thetouch-sensitive surface. If the user pauses the stylus in mid-air beforelowering the stylus, and if the stylus remains within the hover zoneuntil it touches down on the touch-sensitive surface of atouch-sensitive device, then the cursor location may be moved to theprojection of the location where the stylus was paused. Any action thatmay be taken in response to the touch down may be sent to the projectionlocation as well.

Aspects of the invention further provide for various cursor controlzones. In particular, a dampening zone may be used to provide dampenedcursor movement feedback in response to movement input provided by astylus or other pointing device. Also, a dead zone may be used toprohibit cursor movement in response to movement input provided by thestylus or other pointing device.

These and other aspects of the invention will be apparent uponconsideration of the following detailed description of illustrativeembodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary of the invention, as well as the followingdetailed description of illustrative embodiments, is better understoodwhen read in conjunction with the accompanying drawings, which areincluded by way of example, and not by way of limitation with regard tothe claimed invention.

FIG. 1 is a functional block diagram of an illustrative computer thatmay be used to implement various aspects of the present invention.

FIGS. 2 and 3 are each side views of an illustrative touch-sensitivedevice and stylus.

FIG. 4 is a plan view of an illustrative touch-sensitive deviceintegrated with a display.

FIGS. 5 and 6 are each a flowchart showing an illustrative method forimplementing various aspects of the present invention.

FIGS. 7 and 8 are each plan views of an illustrative touch-sensitivedevice integrated with a display.

FIG. 9 is a flowchart showing an illustrative method for implementingvarious aspects of the present invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 1 illustrates an example of a suitable computing system environment100 in which aspects of the invention may be implemented. Computingsystem environment 100 is only one example of a suitable computingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the invention. Neither should computingsystem environment 100 be interpreted as having any dependency orrequirement relating to any one or combination of components illustratedin illustrative computing system environment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with the invention include,but are not limited to, personal computers (PCs); server computers;hand-held and other portable devices such as personal digital assistants(PDAs), tablet PCs or laptop PCs; multiprocessor systems;microprocessor-based systems; set top boxes; programmable consumerelectronics; network PCs; minicomputers; mainframe computers;distributed computing environments that include any of the above systemsor devices; and the like.

Aspects of the invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Theinvention may also be operational with distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices.

With reference to FIG. 1, illustrative computing system environment 100includes a general purpose computing device in the form of a computer100. Components of computer 100 may include, but are not limited to, aprocessing unit 120, a system memory 130, and a system bus 121 thatcouples various system components including system memory 130 toprocessing unit 120. System bus 121 may be any of several types of busstructures including a memory bus or memory controller, a peripheralbus, and a local bus using any of a variety of bus architectures. By wayof example, and not limitation, such architectures include IndustryStandard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus,Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA)local bus, Advanced Graphics Port (AGP) bus, and Peripheral ComponentInterconnect (PCI) bus, also known as Mezzanine bus.

Computer 100 typically includes a variety of computer-readable media.Computer readable media can be any available media that can be accessedby computer 100 such as volatile, nonvolatile, removable, andnon-removable media. By way of example, and not limitation,computer-readable media may include computer storage media andcommunication media. Computer storage media may include volatile,nonvolatile, removable, and non-removable media implemented in anymethod or technology for storage of information such ascomputer-readable instructions, data structures, program modules orother data. Computer storage media includes, but is not limited to,random-access memory (RAM), read-only memory (ROM),electrically-erasable programmable ROM (EEPROM), flash memory or othermemory technology, compact-disc ROM (CDROM), digital video disc (DVD) orother optical disk storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which canaccessed by computer 100. Communication media typically embodiescomputer-readable instructions, data structures, program modules orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, radio frequency (RF)(e.g., BLUETOOTH, WiFi, UWB), optical (e.g., infrared) and otherwireless media. Any single computer-readable medium, as well as anycombination of multiple computer-readable media, are both intended to beincluded within the scope of the term “computer-readable medium” as usedherein.

System memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as ROM 131 and RAM 132. A basicinput/output system (BIOS) 133, containing the basic routines that helpto transfer information between elements within computer 100, such asduring start-up, is typically stored in ROM 131. RAM 132 typicallycontains data and/or program modules that are immediately accessible toand/or presently being operated on by processing unit 120. By way ofexample, and not limitation, FIG. 1 illustrates software in the form ofcomputer-executable instructions, including operating system 134,application programs 135, other program modules 136, and program data137.

Computer 100 may also include other computer storage media. By way ofexample only, FIG. 1 illustrates a hard disk drive 141 that reads fromor writes to non-removable, nonvolatile magnetic media, a magnetic diskdrive 151 that reads from or writes to a removable, nonvolatile magneticdisk 152, and an optical disk drive 155 that reads from or writes to aremovable, nonvolatile optical disk 156 such as a CD-ROM, DVD, or otheroptical media. Other computer storage media that can be used in theillustrative operating environment include, but are not limited to,magnetic tape cassettes, flash memory cards, digital video tape, solidstate RAM, solid state ROM, and the like. Hard disk drive 141 istypically connected to system bus 121 through a non-removable memoryinterface such as an interface 140, and magnetic disk drive 151 andoptical disk drive 155 are typically connected to system bus 121 by aremovable memory interface, such as an interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1 provide storage of computer-readableinstructions, data structures, program modules and other data forcomputer 100. In FIG. 1, for example, hard disk drive 141 is illustratedas storing an operating system 144, application programs 145, otherprogram modules 146, and program data 147. Note that these componentscan either be the same as or different from operating system 134,application programs 135, other program modules 136, and program data137, respectively. Operating system 144, application programs 145, otherprogram modules 146, and program data 147 are assigned differentreference numbers in FIG. 1 to illustrate that they may be differentcopies. A user may enter commands and information into computer 100through input devices such as a keyboard 162 and a pointing device 161,commonly referred to as a mouse, trackball or touch pad. Such pointingdevices may provide pressure information, providing not only a locationof input, but also the pressure exerted while clicking or touching thedevice. Other input devices (not shown) may include a microphone,joystick, game pad, satellite dish, scanner, or the like. These andother input devices are often coupled to processing unit 120 through auser input interface 160 that is coupled to system bus 121, but may beconnected by other interface and bus structures, such as a parallelport, game port, universal serial bus (USB), or IEEE 1394 serial bus(FIREWIRE). A monitor 191 or other type of display device is alsocoupled to system bus 121 via an interface, such as a video interface190. Video interface 190 may have advanced 2D or 3D graphicscapabilities in addition to its own specialized processor and memory.

Computer 100 may also include a touch-sensitive device 165, such as adigitizer, to allow a user to provide input using a stylus 166.Touch-sensitive device 165 may either be integrated into monitor 191 oranother display device, or be part of a separate device, such as adigitizer pad. Computer 100 may also include other peripheral outputdevices such as speakers 197 and a printer 196, which may be connectedthrough an output peripheral interface 195.

Computer 100 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. Remote computer 180 may be a personal computer, a server, a router,a network PC, a peer device or other common network node, and typicallyincludes many or all of the elements described above relative tocomputer 100, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also or alternatively include other networks, such as theInternet. Such networking environments are commonplace in homes,offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, computer 100 is coupled toLAN 171 through a network interface or adapter 170. When used in a WANnetworking environment, computer 100 may include a modem 172 or anotherdevice for establishing communications over WAN 173, such as theInternet. Modem 172, which may be internal or external, may be connectedto system bus 121 via user input interface 160 or another appropriatemechanism. In a networked environment, program modules depicted relativeto computer 100, or portions thereof, may be stored remotely such as inremote storage device 181. By way of example, and not limitation, FIG. 1illustrates remote application programs 182 as residing on memory device181. It will be appreciated that the network connections shown areillustrative, and other means of establishing a communications linkbetween the computers may be used.

As discussed previously, touch-sensitive device 165 may be a deviceseparate from or part of and integrated with computer 100. In addition,any or all of the features, subsystems, and functions discussed inconnection with FIG. 1 may be included in, coupled to, or embodiedintegrally as part of, a tablet-style computer. For example, computer100 may be configured as a tablet-style computer a or handheld devicesuch as a PDA where touch-sensitive device 165 would be considered themain user interface. In such a configuration touch-sensitive device 165may be considered to include computer 100. Tablet-style computers arewell-known. Tablet-style computers interpret gestures input totouch-sensitive device 165 using stylus 166 in order to manipulate data,enter text, create drawings, and/or execute conventional computerapplication tasks such as spreadsheets, word processing programs, andthe like. Input may not only be made by stylus 166, but also by othertypes of styli such as a human finger.

Referring to FIG. 2, illustrative touch-sensitive device 165 has asurface 201 that will be referred to herein as a touch-sensitivesurface. In the following discussion, an X-Y plane will be defined asthe plane along which touch-sensitive surface 201 extends (the Ydimension is not shown in the side view of FIG. 2, but is shown in,e.g., FIG. 4). A dimension, called the Z dimension, is defined in thefollowing discussion as the direction normal to the X-Y plane. Thiscoordinate system is arbitrary and is used only for explanatorypurposes.

Touch-sensitive device 165 is configured to detect both the physicalcontact of stylus 166 against touch-sensitive surface 201 as well as theproximity of stylus 166 relative to touch-sensitive surface 201 alongthe Z dimension. More particularly, stylus 166 may have an overallelongated shape along a lengthwise imaginary axis 205 and may have a tip204 at one end along axis 205. Axis 205 may be parallel to the Zdimension or it may be at some other angle. The latter case is shown inFIG. 2. Either way, the location of tip 204 may be representative of thelocation of stylus 166, and so depending upon the embodiment, referencesherein to the location of stylus 166 include references to the locationof representative tip 204. For example, touch-sensitive device 165 maysense when tip 204 physically contacts touch-sensitive surface 201.Touch-sensitive device 165 may further sense whether or not tip 204 isproximate to touch-sensitive surface 201 along the Z dimension, such aswithin a threshold distance from touch-sensitive surface 201. Inaddition, touch-sensitive device 165 may be able to sense or otherwiseestimate what the actual distance along the Z dimension is between tip204 and touch-sensitive surface 201. Proximity and/or distance may bemeasured along, e.g., an imaginary axis 203 extending between tip 204and touch-sensitive surface 201 along the normal Z dimension.

Also as shown in FIG. 2, an imaginary hover zone 202 is shown betweenstylus 166 (in particular, tip 204) and touch-sensitive surface 201.Although use of the hover zone will be discussed further below, it willbe briefly introduced in connection with FIG. 2. A hover zone is aconceptual tool used to determine whether stylus 166 is or is notlocated within a particular range of positions. Depending upon whetherstylus 166 remains in the hover zone or leaves the hover zone, variousactions may be taken. In this particular embodiment, hover zone 202 is avolume having a conic shape, which in this case is a conic sectionhaving a smaller radius at tip 204 and a larger radius attouch-sensitive surface 201. However, a hover zone may be a volumehaving any shape such as but not limited to a cylinder, a box, or evenan irregular shape. Also, although hover zone 202 is shown to begenerally extending parallel to the Z dimension, it may be dynamicallyoriented so as to be continuously parallel to axis 205 of stylus 166. InFIG. 2, tip 204, and thus stylus 166, is shown to be within hover zone202.

In FIG. 2, hover zone 202 is shown as a defined volume having aparticular shape. This may work where touch-sensitive device 165 iscapable of determining or estimating the actual distance of stylus 166along normal axis 203. However, in embodiments where touch-sensitivedevice 165 is capable of only a true/false determination as to whetherstylus 166 is proximate to touch-sensitive surface 201, hover zone 202may be less defined and may be reduced to a projection of the positionof stylus 166 along normal axis 203 onto touch-sensitive surface 201,possibly in combination with hover time and/or speed of stylus 166.These embodiments will be discussed further below.

Referring to FIG. 3, which is the same embodiment as FIG. 2, stylus 166has now moved toward touch-sensitive surface 201 along the Z dimension.Stylus 166 has also moved along the X and/or Y dimensions. In movingstylus 166 along the Z dimension, the additional movement along the Xand/or Y dimensions may be intended by the user or that isunintentional, such as due to a shaky hand. In particular, tip 204 hasmoved in a composite direction and by a distance, as depicted by vector301, such that tip 204 is now closer to touch-sensitive surface 201along the Z dimension. Thus, the distance between tip 204 andtouch-sensitive surface 201 along axis 203 is shorter. In addition, themovement of stylus 166 as between FIGS. 2 and 3 is such that tip 204(and thus stylus 166) has remained within hover zone 202. In embodimentswhere touch-sensitive device 165 is able to detect the three-dimensionalposition of tip 204, this may be a simple matter of determining thethree-dimensional position of tip 204 and comparing it with the volumedefined by hover zone 202.

In embodiments where touch-sensitive device 165 is only able todetermine whether or not hovering tip 204 is proximate along the Zdimension, as well as its X,Y position, then determining whether tip 204remains within hover zone 202 may include determining whether axis 203remains within a defined X,Y area on touch-sensitive surface 201. Thisdefined X,Y area will be referred to herein as a touch zone, and may bethe projection of the three-dimensional hover zone along the Zdimension. The potential significance of whether stylus 166 remainswithin hover zone 202 will be described next.

Referring to FIG. 5, an illustrative method is shown that, whenimplemented by computer 100, may improve targeting by making use of theconcept of a hover zone and/or a touch zone. Use of this technique mayallow computer 100 to more likely respond as the user intends andexpects. In step 501, computer 100 may determine whether it is in aninking mode or a cursor control mode. An inking mode is a mode in whichmovements of stylus 166 across touch-sensitive surface 201 produceelectronic displayed ink. This mode is useful for making handwritteninput such as handwritten text or drawings. If computer 100 is in inkingmode, then in this embodiment stylus input may be handled as itconventionally would without the present invention. Any of the aspectsof the present invention may be used with inking mode, however, they maywork more predictably and with better user satisfaction in cursorcontrol mode. Cursor control mode is a mode in which movements of stylus166 relative to touch-sensitive surface 201 cause a cursor or otherobject to be moved, or in which other non-inking interactions may occursuch as the selection of displayed user interface elements. Also, incursor control mode, a cursor may not actually be displayed to the usereven though a cursor location is tracked by computer 100. The cursorlocation is the location on the displayed graphical user interface wherestylus (or mouse) control is being directed—the location where thecursor would be displayed if it were to be displayed. Where the cursoris not actually displayed, the cursor location may be thought of as avirtual cursor. Where computer 100 does not have distinct inking andcursor control modes, or as desired, step 501 may be skipped ormodified.

In the present embodiment, if computer 100 is in cursor control mode,then in step 502 stylus input is received. Stylus input may be broadlyclassified into two categories: stylus hover input and stylus touchinput. Stylus hover input is input where stylus 166 (e.g., tip 204) ishovering proximate to, but not in physical contact with, touch-sensitivesurface 201. Stylus hover input includes moving in mid-air or pausing inmid-air. Mid-air movement may be made in any of the X, Y, and/or Zdirections. Stylus touch input is input where stylus 166 (e.g., tip 204)is physically in contact with touch-sensitive surface 201. Stylus touchinput includes tapping (or double- or triple-tapping) on touch-sensitivesurface 201 in a single location, as well as sliding acrosstouch-sensitive surface 201 while maintaining contact withtouch-sensitive surface 201. Other types of stylus input may also bemade, such as by the user pressing a button on stylus 166 to accessspecial functionality or by simulating a stylus touch input wherein theuser physically presses on tip 204 without it actually contactingtouch-sensitive surface 201. At step 503, if the stylus input was astylus touch input (such as where cursor control mode begins whilestylus 166 is physically contacting touch-sensitive surface 201), thenstylus processing proceeds in a conventional manner. However, if in step503 it is determined that stylus hover input was instead received, thenat step 504 the cursor location (and possibly also a cursor, such ascursor 401 in FIG. 4, displayed at the cursor location, is moved to alocation on monitor 191 that corresponds to a Z dimension projection(i.e., a projection along the Z dimension) of stylus 166 (e.g., of tip204) onto touch-sensitive surface 201. Where touch-sensitive device 165(and touch-sensitive surface 201) is integrated with monitor 191 as atouch-sensitive display, such as on a tablet-style or handheld computer,then the cursor location (and possibly also the displayed cursor) ismoved to the Z dimension projection of stylus 166. For the remainder ofthis disclosure, it will be assumed that the illustrative embodiments,provide a displayed cursor at the cursor location. However, theseembodiments work equally well without an actual displayed cursor.Instead, the cursor location alone may be tracked and modified, andfeedback other than a displayed cursor may be provided to the user. Forexample, objects that are under the present cursor location may “lightup” or animate in some manner to give the user an indication of wherethe cursor location presently is.

Next, at step 505, it is determined whether the stylus hover input is amid-air pause. A mid-air pause may be used by the user as a signal, orcommand, to provide information to computer 100 that the pause locationis special. The term “pause” as used herein includes a stoppage of alldetectable movement of stylus 166 (or just of tip 204) for at least athreshold amount of time. The term “pause” also includes near-stoppagesuch as the motion of stylus 166 (or just of tip 204) is below amovement threshold for at least a threshold amount of time. For example,computer 100 may consider stylus 166 to be paused if, for at least athreshold amount of time, tip 204 does not move in the X, Y directionsand/or in the Z direction more than a threshold distance. The lattersituation is included because, as a practical matter, it is difficult ifnot impossible for a human user to control stylus 166 so as tocompletely stop all detectable motion. If, at step 505, the stylus hoverinput does not include a pause, then computer 100 awaits the next stylusinput at step 502. If the stylus hover input includes a pause, then atstep 506 a hover zone is defined based on the location of stylus 166during the pause, also referred to herein as the hover pause location.

In defining the hover zone at step 506, the hover zone may be defined toat least partially surround the hover pause location. For example, thehover pause location may be the position of stylus 166 as shown in FIG.2, and hover zone 202 has been defined as a cone extending radially inthe X and Y dimensions about the central hover pause location, anddownward in the Z dimension toward touch-sensitive surface 201. As hoverzone 202 extends toward touch-sensitive surface 201, the radius ofillustrative hover zone 202 in an X,Y plane (also referred to as the X,Yradius) increases about normal axis 203 (which extends between the hoverpause location and its Z dimension projection onto touch-sensitivesurface 201). For example, at the hover pause location the X,Y radiusmay be, e.g., one or two pixels in length, whereas at thetouch-sensitive surface 201 (Z=0) the X,Y radius of hover zone 202 maybe, e.g., four or five pixels in length. Other shapes and sizes of thehover zone may be used. For example, the hover zone may be a cylinderwith a constant X,Y radius about central normal axis 203 along theentire Z-dimension length of the hover zone. In any event, hover zonemay preferably be sized and shaped so as to have an effect that issubtle, if even noticeable, to the average user. Ideally, from theuser's point of view, it simply appears easier to control targeting ofstylus 166.

Once the hover zone has been defined, then at step 507 computer 100again awaits another stylus input, which may be considered a new stylusinput or a second portion of the original stylus hover input received atstep 502. For example, each stylus input may be represented by anindividual packet of data, for instance representing a sample “snapshot”of the stylus position. Or, instead of a single packet, each stylusinput may be considered a series of such packets, for instancerepresenting an entire stylus gesture or a portion thereof. At step 508,it is determined whether the stylus input is a stylus hover input or astylus touch input. If it is a stylus hover input, then at step 509 thedisplayed cursor is again moved as in step 504. Then, at step 510computer 100 determines whether, after taking into account the lateststylus hover input, stylus 166 is still within the defined hover zone.If so, then at step 507 computer 100 awaits the next stylus input.However, if stylus 166 has moved outside of the defined hover zone, thenthe process starts over at step 502. The reason for this is that, ifstylus 166 has moved outside the hover zone, then it is likely that theuser has not yet selected a likely touchdown target. This means that thepreviously-defined hover zone is no longer needed, and a new hover zonewill be defined the next time a hover pause is detected.

Assuming that stylus 166 has remained within the hover zone, then step507 is repeated. Eventually, and assuming that stylus 166 hascontinually remained within the hover zone, at step 508 computer 100will detect a stylus touch input. This means that the user has loweredstylus 166 until it physically contacts touch-sensitive surface 201. Forexample, the user may have performed a tap by lowering stylus 166 untilit physically contacts touch-sensitive surface 201 and then removesstylus 166 from touch-sensitive surface 201. Alternatively, the user mayhave lowered stylus 166 until is physically contact touch-sensitivesurface 201 and then maintained the contact. Either way, at step 511computer 100 may determine whether the initial point of contact iswithin a defined touch zone (such as touch zone 402 in FIG. 4). Thetouch zone may depend upon the hover zone, and may be a projection alongthe Z dimension of the hover zone or the intersection of the hover zonewith touch-sensitive surface 201. If the initial point of contact is notwithin the touch zone, then the stylus touch input may be processed in aconventional manner. For example, any action, such as a left or rightclick, that may conventionally occur responsive to the stylus touchinput may be directed to the initial point of contact.

However, if the initial point of contact is within the touch zone, thenthe hover pause location may be used at steps 512 and/or 513. Moreparticularly, the displayed cursor may be moved to a locationcorresponding to the hover pause location, which in the case of anintegrated touch-sensitive display may be the Z dimension projection ofthe hover pause location onto touch-sensitive surface 201. Also, anyaction that may conventionally occur responsive to the stylus touchinput may occur, not necessarily at the initial point of contact, butinstead at the location corresponding to the hover pause location, whichagain in the case of an integrated touch-sensitive display may be the Zdimension projection of the hover pause location onto touch-sensitivesurface 201. Thus, by pausing stylus 166 in mid-air prior to touchingdown, the user may accurately control, a priori, the location where anaction is to be sent responsive to the subsequent touchdown.

Modifications to the method shown in connection with FIG. 5 arepossible. For example, FIG. 6 shows an illustrative embodiment where theuser need not pause stylus 166 in midair prior to touching down.Instead, a running average or other function of historical stylus hoverpositions in an X,Y plane is used to determine where an action should bedirected. The running average may be reset upon a touchdown of stylus166. Also, the running average may be taken over a fixed or dynamic sizemoving window. Steps 601 to 604 are identical to steps 501 to 504. Then,instead of detecting a pause and defining a hover zone, at step 607 thenext stylus input is received. Steps 607 to 609 are identical to steps507 to 509. Then, at 614, a running average of the stylus hover locationis maintained. Instead of or in addition to a running average, otherstatistical functions may be applied (e.g., running median) to theplurality of stylus hover locations.

Next, steps 610 and 611 are identical to steps 510 and 511, except thatin this embodiment, the concept of a hover zone is approacheddifferently. In this embodiment, the current stylus hover location iscompared with the running average (and/or result of some other function)applied to the previous stylus hover locations. The determination ofwhether the stylus has remained within the hover zone is based on thecomparison. For example, if stylus 166 has moved more than a thresholddistance along an X,Y plane from the running average, then computer 100may determine that stylus 100 has left the hover zone. Likewise, ifstylus 166 is located within a threshold distance along an X,Y planefrom the running average, then computer 100 may determine that stylus100 has remained within the hover zone. In a sense, the hover zone isdynamically updated in this embodiment each time the running average orother function is updated.

Steps 612 and 613 are identical to steps 512 and 513, except that inthis embodiment, the cursor (e.g., cursor 401) and/or any action takenresponsive to the stylus touch input is directed to a locationcorresponding to the running average (and/or result of some otherapplied function). In the case of an integrated touch-sensitive display,this location may be the Z dimension projection of the running averageonto touch-sensitive surface 201.

Another illustrative modification includes using look-back logic tochoose an historical X,Y location as the location to which the cursorshould be moved and/or an action should be directed upon stylustouchdown. This embodiment would be similar to the embodiment discussedin connection with FIG. 5, but instead of choosing an historical X,Ylocation based on a hover pause location, it may be chosen based on oneor more other factors. For example, assume that a series of X,Y stylusposition packets are recorded over time. Which one of those historicalX,Y stylus location is chosen upon touchdown may be based on thevelocity of stylus movement, such as at the moment that the stylus pullsaway from the touch-sensitive surface or the moment of touchdown. Insuch an embodiment, for example, the slower the stylus moves at or neartouchdown, the earlier in time the chosen historical stylus X,Ylocation.

In addition to or instead of the above-discussed techniques, thepositioning of the displayed cursor may be dampened or even prohibitedin such a way that may be helpful to the user in controlling cursorposition. Referring to the illustrative embodiment shown in FIG. 7, aplan view of a portion of touch-sensitive surface 201 is shown, in whichit is integrated with a display such as monitor 191. Cursor 401 isdisplayed at a location on touch-sensitive surface 201. In addition,although not necessarily displayed to the user, the Z dimensionprojection of the location of hovering stylus 166 is depicted in FIG. 7as a circle 701, which will be referred to hereafter as stylusprojection location 701. Although stylus projection location 701 may beat the same location as cursor 401, it is shown as being located adistance D in the X,Y plane from cursor 401. This distance D may be usedto determine whether any cursor movement dampening should occur, and ifso, how much. This distance D may also be used to determine whethercursor movement should be prohibited.

Under conventional circumstances (i.e., without any aspects of thepresent invention), cursor 401 would follow every X,Y movement of stylus166 while it is within hovering range. However, in accordance withaspects of the present invention, movement of cursor 401 may sometimesbe dampened such that movement of cursor 401 does not necessarily followmovement of stylus 166 while it is within hovering range. In effect, alow-pass filter may be selectively applied to cursor control such thatcursor 401 lags somewhat behind stylus 166. Such dampened movement mayappear to the user as though cursor 401 is moving through molasses. To alimited extent, this lag may become greater as stylus 166 moves slower.The amount of dampening and/or lag may depend upon the location of thestylus projection location 701 relative to cursor 401.

To implement such dampening and/or cursor movement prohibition, one ormore cursor control zones may be defined relative to cursor 401.Although not necessarily displayed to the user, two such zones, 801 and802, are shown in FIG. 8. In this illustrative embodiment, inner zone801 and outer zone 802 are each a disk centered about cursor 401. Outerzone 802 may overlap inner zone 801 or it may be in the form of anannulus that does not overlap inner zone 801. In any event, a cursorcontrol zone may be of any shape and size, and may be located anywhererelative to cursor 401.

In this particular embodiment, inner cursor control zone 801 is a “deadzone,” meaning that cursor control made in the dead zone does not affectcursor movement. A purpose of this dead zone may be to absorb noise andshaky hand movements. The dead zone may be particularly useful inhelping a user target small objects. Thus, while stylus projectionlocation 701 is located within dead zone 801, movement of stylus 166does not result in any movement of cursor 401. Dead zone 801 may besmall enough for the user to not take much notice, such as only a one ortwo pixels in radius. However, dead zone 801 may be of any size andshape.

Also in this particular embodiment, outer cursor control zone 801 is adampening zone, meaning that cursor control made in the dampening zoneresults in dampened cursor movement. Thus, while stylus projectionlocation 701 is located within dampening zone 802, movement of stylus166 results in movement of cursor 401 that is dampened with respect tomovement of stylus 166. The amount of dampening may be constantthroughout dampening zone 802, it may depend upon the distance D betweenprojection location 701 and cursor 401, or it may depend upon the sizeof dampening zone 802. For example, the larger dampening zone 802 is,the more dampening that will be provided within dampening zone 802.Dampening zone 802 may be larger than dead zone 801, such as three tosix pixels in diameter. In some embodiment, dampening zone 802 may beapproximately three times larger than dead zone 801. In any event,dampening zone 802 may be of any size and shape. In addition, the sizeof dampening zone 802 may depend upon the velocity of stylus 166. Forexample, dampening zone 802 may grow larger when stylus 166 moves slowlywhile hovering, and may shrink responsive to stylus 166 moving fasterwhile hovering. Growth and/or shrinkage of dampening zone 802 may belimited, however. For example, dampening zone 802 may be prevented frombeing larger than 32 pixels in radius, or any other size limit, anddampening zone 802 may be prevented from shrinking below a predeterminedsmall size limit. In addition, there may be an asymmetry to dampeningzone 802 growth and shrinkage. For instance, there may be a bias suchthat it is easier to shrink dampening zone 802 than to grow it. Thisrepresents a typical behavior in which users often take their time toperform fine targeting (where dampening zone 802 would grow larger,thereby making cursor movements smoother as it grows) but move theirstylus quickly to a different portion of in order to perform a tap or adrag on a particular object. In the latter case, it may be desirable fordampening zone 802 to shrink quickly so as to not interfere with theuser's attempt to quickly relocate the displayed cursor.

Also in this particular embodiment, whenever stylus projection location701 is located outside of both cursor control zones 801 and 802, thencursor 401 moves in an undampened conventional manner in response tostylus hover input. Alternatively, movement of cursor 401 may still bedampened, but by an amount that is less than when stylus projectionlocation 701 is within dampening zone 802. In the latter case, dampeningmay be at a constant level outside of cursor control zones 801 and 802,or may depend upon distance D.

Combining the above-discussed look-back logic with dampening zone 802,an amount of look-back f that may be performed may be computed as, forexample:f=0.05+(CT−minCT)*(0.98−0.05)/(maxCT−minCT),wherein CT is the current size of dampening zone 802, and minCT andmaxCT are, respectively, the minimum and maximum allowable size ofdampening zone 802. The minimum allowable size minCT may be of any valueno greater than maxCT, such as 3. Of course, the various constants usedabove (e.g., 0.98 and 0.05) and in the remaining equations are merelyillustrative; other values may be used.

Next, the number of packets to look back may be computed as:number_of_packets_to_look_back=f*LB,wherein LB is a “look back” value. The value of LB may be set by theuser and/or by software, and may be of any value. In an illustrativeembodiment, LB has a default value of 15 and can range from 1 to 30. Theamount of time to look back may then be computed as:time_to_look_back=number_of_packets_to_look_back*1000/133,which results in the number of milliseconds of lag for the cursormovement, assuming in this example that 133 packets per second of stylusinput data are generated.

To determine the size of dead zone 801, the following computation may beused:dead_zone=CT*DZ/(2*100),wherein CT is the current size of dampening zone 802 and DS is a deadzone size setting that may be set by the user or by software and may beof any value between 0 and 100. For example, where DZ is equal to 33,this would mean that dead zone 801 is generally about one-third of thesize of dampening zone 802.

To provide dampening of movements of cursor 401, the followingcomputation may be used:xCursorNew=Xi*xCursorOld+(1−Xi)*xCurrent, andyCursorNew=Xi*yCursorOld+(1−Xi)*yCurrent, whereinXi=0.5+(CT−minCT)*(0.98−0.5)/(maxCT−minCT).Each new cursor 401 location will have the screen coordinatesxCursorNew, yCursorNew, which may be computed based on its previousscreen coordinates xCursorOld, yCursorOld, its current screencoordinates xCurrent, yCurrent, and the current, minimum, and maximumsizes (CT, minCT, and maxCT, respectively) of dampening region 802.

To determine the current size CT of dampening zone 802, the followingillustrative algorithm may be used. The value of CT may change based ona “really slow” flag, an “increase trigger” value, and a “decreasetrigger” value. The “really slow” flag is set responsive to stylus 166moving below a given velocity threshold while hovering, otherwise it isun-set. If the “really slow” flag is set, then a “hover” value isincreased by one for each new stylus input packet. Each time the “hover”value exceeds the “increase trigger” value, CT is incremented by one(thereby increasing the current size of dampening zone 802) and the“hover” value is reset to zero. The “increase trigger” value may be setby the user or by software and may be of any value such as in the rangeof 1 to 30 with a default value of 3.

The previous paragraph contemplates the situation where dampening zone802 can grow. In addition, to allow for dampening zone 802 to shrinkwhen appropriate, for each stylus input packet, an “anti-hover” value isincremented by one. This is true regardless of the state of the “reallyslow” flag. Each time the “anti-hover” value exceeds the “decreasetrigger” value, CT is decremented by one (thereby decreasing the size ofdampening zone 802) and the “anti-hover” value is reset to zero. The“decrease trigger” value may be set by the user or by software and maybe of any value, such as in the range of 1 to 30 with a default value of12. The “decrease trigger” value should be larger than the “increasetrigger” value so that dampening zone 802 is able to grow when stylus166 moves slowly. The result of this algorithm is that dampening zone802 has hesitant growth (which is a force that is applied to dampeningzone 802 when stylus 166 moves slowly) and determined shrinkage (whichis a force that is always applied to dampening zone 802).

To determine the setting of the “really slow” flag, the followingcomputation may be used:DistSqCur=dX+dY*dY,AvgDistSq=0.7*AvgDistSqOld+(1−0.7)*DistSqCur, such thatreally_slow=AvgDistSq<3.

Thus, in this illustrative embodiment, the “really slow” flag is set(i.e., equal to true) whenever the average distance covered per stylusinput packet is less than the square root of three, otherwise it isun-set (i.e., equal to false).

FIG. 9 shows an illustrative method that may be used in connection withcursor dampening and deadening. At step 901, computer 100 determineswhether it is in a cursor control mode or an inking mode. In the presentexample, dampening and deadening can only occur when computer 100 is incursor control mode. However, dampening and/or deadening may beimplemented in inking mode if desired. Next, at step 902, and assumingthat cursor control mode is active, a stylus hover input is received. Atstep 903, computer 100 determines whether stylus projection location 701is sufficiently proximate to cursor 401. For example, computer 100 maydetermine whether stylus projection location 701 is within dampeningzone 802. If not, then non-dampened cursor movement may occur.

However, if stylus projection location 701 is sufficiently proximate tocursor 401, then cursor movement is eligible to be dampened. In thiscase, computer 100 then determines at step 904 whether stylus projectionlocation 701 is within a dead zone such as dead zone 801. If not, thenat step 905 cursor 401 is moved in a dampened manner in response to thestylus hover input. If so, then at step 906 movement of cursor 401 isnot affected at all by the stylus hover input. It should be noted that adead zone may be implemented at all times or only when cursor 401 isalready motionless.

It should also be noted that cursor control zones may be used with inputdevices other than a stylus and touch-sensitive device. For example,cursor control zones may be used when cursor 401 is controlled by amouse or trackball device. Also, various aspects of the presentinvention may be used not only when stylus 166 is providing stylus hoverinput, but also when stylus 166 is providing stylus touch input, asdesired. Many of the approaches discussed herein also apply to a stylusdrag input, which is where the stylus is moving across thetouch-sensitive surface while it continues to physically contact thetouch-sensitive surface. For instance, although dampening and deadeningof the displayed cursor have been discussed above with regard to astylus hover input, these may also occur in response to a stylus draginput. A stylus drag input may be used to implement drag-targeting, forexample, which is where the user is attempting to accurately target aparticular displayed element before lifting the stylus up away from thetouch-sensitive surface. Such stylus drag input may occur immediatelyafter the above-discussed stylus touch input that, in turn, follows theprior stylus hover input. Also, stylus drag input may be used toimplement inking, such as when the user desires to write handwrittentext or draw a picture. In such an inking situation, it may beundesirable to cause the cursor position to be dampened and/or deadenedduring a stylus drag input. It may further be undesirable where the useris attempting to accurately adjust the size, shape, or location of adisplayed item (such as in a drawing application). Thus, dampeningand/or deadening of the displayed cursor may be manually turned on/offby the user and/or automatically by the computer as it senses theappropriateness and context of these features.

Thus, various techniques have been described that may provide the userwith an easier-to-control graphical user interface. Various aspects ofthe present invention have been described in terms of steps and methods.Each of these steps and methods may be embodied as computer-executableinstructions stored on a computer-readable medium.

What is claimed is:
 1. A computer-memory device storingcomputer-executable instructions that, when executed, enable a computingdevice to perform a method of receiving an input using a touch-sensitivesurface, the method comprising: detecting a presence of an input deviceapart from the touch-sensitive surface, wherein a movement of the inputdevice apart from the touch-sensitive surface is effective to move acursor; determining a cursor location and a cursor control zone having aboundary that at least partially circumscribes the cursor location andthat is a first distance away from the cursor location; measuring aspeed at which the input device is moved relative to the touch-sensitivesurface; and decreasing the cursor control zone when the speed exceeds athreshold, wherein a movement of the cursor is dampened when the cursoris positioned inside the cursor control zone.
 2. The computer-memorydevice of claim 1, wherein the cursor is displayed.
 3. Thecomputer-memory device of claim 1, wherein the cursor is not displayed.4. The computer-memory device of claim 1, wherein the input device is afinger.
 5. The computer-memory device of claim 1, wherein decreasing thecursor control zone includes decreasing a size of the cursor controlzone until the size of the cursor control zone reaches a minimum-sizethreshold.
 6. The computer-memory device of claim 1, wherein the methodfurther comprises; measuring a second speed at which the input device ismoved relative to the touch-sensitive surface; and increasing the cursorcontrol zone when the speed is below another threshold.
 7. Thecomputer-memory device of claim 6, wherein the cursor control zone isdecreased in size faster than the cursor control zone is increased insize.
 8. A method of receiving an input using a touch-sensitive surface,the method comprising: detecting a presence of an input device apartfrom the touch-sensitive surface, wherein a movement of the input deviceapart from the touch-sensitive surface is effective to move a cursor;determining a cursor location and a cursor control zone having aboundary that at least partially circumscribes the cursor location andthat is a first distance away from the cursor location; measuring aspeed at which the input device is moved relative to the touch-sensitivesurface; and decreasing the cursor control zone when the speed exceeds athreshold, wherein a movement of the cursor is dampened when the cursoris positioned inside the cursor control zone.
 9. The method media ofclaim 8, wherein the cursor is displayed.
 10. The method of claim 8,wherein the cursor is not displayed.
 11. The method of claim 8, whereinthe input device is a finger.
 12. The method of claim 8, whereindecreasing the cursor control zone includes decreasing a size of thecursor control zone until the size of the cursor control zone reaches aminimum-size threshold.
 13. The method of claim 8 further comprising:measuring a second speed at which the input device is moved relative tothe touch-sensitive surface; and increasing the cursor control zone whenthe speed is below another threshold.
 14. A computing device having atouch-sensitive surface, a processor, and computer storage media,wherein the computing device leverages the processor to executeoperations stored on the computer storage memory comprising: detecting apresence of an input device apart from the touch-sensitive surface,wherein a movement of the input device apart from the touch-sensitivesurface is effective to move a cursor; determining a cursor location anda cursor control zone having a boundary that at least partiallycircumscribes the cursor location and that is a first distance away fromthe cursor location; measuring a speed at which the input device ismoved relative to the touch-sensitive surface; and decreasing the cursorcontrol zone when the speed exceeds a threshold, wherein a movement ofthe cursor is dampened when the cursor is positioned inside the cursorcontrol zone.
 15. The device of claim 14, wherein the cursor isdisplayed.
 16. The device of claim 14, wherein the cursor is notdisplayed.
 17. The device of claim 14, wherein the input device is afinger.
 18. The device of claim 14, wherein decreasing the cursorcontrol zone includes decreasing a size of the cursor control zone untilthe size of the cursor control zone reaches a minimum-size threshold.19. The device of claim 14, wherein operations further comprise:measuring a second speed at which the input device is moved relative tothe touch-sensitive surface; and increasing the cursor control zone whenthe speed is below another threshold.
 20. The device of claim 19,wherein the cursor control zone is decreased in size faster than thecursor control zone is increased in size.